﻿Imports CAPA_ENTIDAD
Imports System.Data.SqlClient



Public Class DisponibilidadAD


    Private conn As SqlConnection
    Private comando As New SqlCommand
    Private lstObjDisponibilidadEN As List(Of DisponibilidadEN)
    Private objetoDatos As New Acceso




    Public Sub New()

        Dim objConexion As New conexion
        conn = objConexion.abrir
        comando.Connection = conn


    End Sub

    Public Function consultarDisponibilidad(ByVal fechaIni As Date, ByVal fechaFin As Date, ByVal nroHabi As Integer) As List(Of DisponibilidadEN)

        Dim objDisponibilidad As DisponibilidadEN
        lstObjDisponibilidadEN = New List(Of DisponibilidadEN)

        comando.CommandType = CommandType.StoredProcedure
        comando.CommandText = "ConsultarDisponibilidad"


        Dim pFechaIni As New SqlParameter("@pFechaIni", SqlDbType.DateTime)
        pFechaIni.Value = fechaIni
        pFechaIni.Direction = ParameterDirection.Input
        comando.Parameters.Add(pFechaIni)


        Dim pFechaFin As New SqlParameter("@pFechaFin", SqlDbType.DateTime)
        pFechaFin.Value = fechaFin
        pFechaFin.Direction = ParameterDirection.Input
        comando.Parameters.Add(pFechaFin)

        Dim pNroHab As New SqlParameter("@pNroHabi", SqlDbType.Int)
        pNroHab.Value = nroHabi
        pNroHab.Direction = ParameterDirection.Input
        comando.Parameters.Add(pNroHab)

        Dim reader As SqlDataReader = comando.ExecuteReader()

        If reader.HasRows Then
            While reader.Read()

                objDisponibilidad = New DisponibilidadEN

                objDisponibilidad._nroHabitacion = reader("nroHabitacion")
                objDisponibilidad._nroReserva = reader("nroReserva")
                objDisponibilidad._fechaPrevistaInicio = reader("fechaPrevistaInicio")
                objDisponibilidad._fechaPrevistaFin = reader("fechaPrevistaFin")
                objDisponibilidad._cantDias = reader("cantidadDiasEstadia")
                objDisponibilidad._idEstado = reader("idEstado")
                objDisponibilidad._idColor = reader("idColor")

                If (reader("nroPasajeroTitular") = 0) Then
                    objDisponibilidad._titular = objetoDatos._consultaValorString("select nombre from AgenciaTurismo where nroAgencia=" & reader("nroAgenciaTitular"))
                Else
                    objDisponibilidad._titular = objetoDatos._consultaValorString("select nombre+', ' + apellido as nombre from Pasajero where nroPasajero=" & reader("nroPasajeroTitular"))
                End If

                If Not (IsDBNull(reader("observaciones"))) Then
                    objDisponibilidad._observaciones = reader("observaciones")
                End If




                lstObjDisponibilidadEN.Add(objDisponibilidad)




            End While
        End If


        reader.Close()
        comando.Parameters.Clear()
        Return lstObjDisponibilidadEN



    End Function


End Class
